New focus change handling
authorMatthias Clasen <mclasen@redhat.com>
Thu, 13 Feb 2020 01:26:29 +0000 (20:26 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 21 Feb 2020 05:47:53 +0000 (00:47 -0500)
commit23c67f8c672ee3c0a3e22afd71ac86f96592dca5
tree140c5974325aa00cd4c4f320a1f0220f6660840e
parent9402e335d014e5f1fffafd8bc9af6e049576418b
New focus change handling

Instead of relying on gdk's antiquated crossing events,
create a new GtkCrossingData struct that contains the
actual widgets, and a new event controller vfunc that
expects this struct. This also saves us from making sense
of X's crossing modes and details, and makes for a
generally simpler api.

The ::focus-in and ::focus-out signals of GtkEventControllerKey
have been replaced by a single ::focus-change signal that
takes GtkCrossingData as an argument. All callers have
been updated.
19 files changed:
gtk/gtkcalendar.c
gtk/gtkentrycompletion.c
gtk/gtkenums.h
gtk/gtkeventcontroller.c
gtk/gtkeventcontroller.h
gtk/gtkeventcontrollerkey.c
gtk/gtkeventcontrollerprivate.h
gtk/gtkfilechooserentry.c
gtk/gtkmodelbutton.c
gtk/gtkpopover.c
gtk/gtkpopovermenu.c
gtk/gtkspinbutton.c
gtk/gtktext.c
gtk/gtktextview.c
gtk/gtktreeview.c
gtk/gtktreeviewcolumn.c
gtk/gtkwidget.c
gtk/gtkwidgetprivate.h
gtk/gtkwindow.c